package com.mac.hosp_pre.admin.service;

import com.mac.hosp_pre.admin.entity.Schedule;
import com.mac.hosp_pre.admin.model.req.ScheduleQueryReqDto;
import com.mac.hosp_pre.admin.model.req.ScheduleReqDto;
import com.mac.hosp_pre.admin.dto.ScheduleOrderRespDto;
import com.mac.hosp_pre.admin.model.resp.ScheduleRespDto;
import com.mac.hosp_pre.reply.PageResult;

import java.util.List;
import java.util.Map;

public interface ScheduleService extends BaseMongoService<Schedule> {

    //上传排班接口
    void add(ScheduleReqDto req);

    //查询排班接口
    PageResult<ScheduleRespDto> findPageSchedule(ScheduleQueryReqDto scheduleQuery);

    //删除排班
    void remove(String hospCode, String hosScheduleId);

    //根据医院编号 和 科室编号 ，查询排班规则数据
    Map<String, Object> getRuleSchedule(long page, long limit, String hospCode, String deptCode);

    //根据医院编号 、科室编号和工作日期，查询排班详细信息
    List<ScheduleRespDto> getDetailSchedule(String hospCode, String deptCode, String workDate);

    //获取可预约的排班数据
    Map<String,Object> getBookingScheduleRule(int page,int limit,String hospCode,String deptCode);

    //获取排班id获取排班数据
    ScheduleRespDto getScheduleId(String scheduleId);

    //根据排班id获取预约下单数据
    ScheduleOrderRespDto getScheduleOrder(String scheduleId);

    //更新排班数据 用于mp
    void update(ScheduleReqDto req);
}
